package com.Offer;

/*
    面试题17：打印从1到最大的n位数
    题目描述：输入数字 n，按顺序打印从 1 到最大的 n 位数十进制数.
    比如：输入 3，打印出 1 到 999.
 */
public class demo17 {
    public static void main(String[] args) {
        printToMaxOfNDigits(2);
    }
    public static void printToMaxOfNDigits(int n){
        if(n <= 0) return;
        int[] array = new int[n];
        printArray(array,0);
    }
    public static void printArray(int[] array,int n){
        for(int i = 0;i<10;i++){
            if(n != array.length){
                array[n] = i;
                printArray(array,n+1);
            }else{
                boolean isFirstNo0 = false;
                for(int j = 0;j<array.length;j++){
                    if(array[j] != 0){
                        System.out.print(array[j]);
                        if(!isFirstNo0)
                            isFirstNo0 = true;
                    }else{
                        if(isFirstNo0)
                            System.out.print(array[j]);
                    }
                }
                System.out.println();
                return;
            }
        }
    }
}
